package com.scuec.trainingmanagementsys.service;
import com.scuec.trainingmanagementsys.entity.WeeklyReport;
import java.util.List;
import java.util.Map;

public interface WeeklyReportService {
    // 添加周报（仅Leader可操作）
    Map<String, Object> addWeeklyReport(WeeklyReport weeklyReport, Integer studentID);

    // 删除周报（仅发布者可操作）
    Map<String, Object> deleteWeeklyReport(Integer weeklyReportID, Integer studentID);

    // 更新周报
    Map<String, Object> updateWeeklyReport(WeeklyReport weeklyReport);

    // 根据ID查询周报
    WeeklyReport getWeeklyReportById(Integer weeklyReportID);

    // 查询团队所有周报
    List<WeeklyReport> getWeeklyReportsByTeamId(Integer teamID);

    // 查询学生提交的周报
    List<WeeklyReport> getWeeklyReportsByStudentId(Integer studentID);

    // 查询当前学生的周报信息，关联查询student、project和team表
    List<WeeklyReport> getWeeklyReportsByStudentIdWithRelations(Integer studentID);

    // 检查用户是否为团队 Leader
    boolean isTeamLeader(Integer teamID, Integer studentID);

    List<WeeklyReport> getWeeklyReportsWithProjectName();

    List<WeeklyReport> getWeeklyReportsByTeamIdWithRelations(Integer teamID);

    // 获取所有周报信息
    List<WeeklyReport> getAllWeeklyReports();

    // 根据项目ID获取周报信息
    List<WeeklyReport> getWeeklyReportsByProjectId(Integer projectId);

    List<Map<String, Object>> getWeeklyCountLast7Days();
}